import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import Backend from 'i18next-http-backend';

// 导入翻译资源
import translationZH from './locales/zh/translation.json';
import translationEN from './locales/en/translation.json';
import translationJA from './locales/ja/translation.json';

// 配置资源
const resources = {
  zh: {
    translation: translationZH
  },
  en: {
    translation: translationEN
  },
  ja: {
    translation: translationJA
  }
};

// 默认语言
export const defaultLanguage = 'ja';

// 检查是否为开发环境
const isDevelopment = import.meta.env.DEV || import.meta.env.MODE === 'development';

// 所有语言列表
const allLanguages = [
  { code: 'zh', name: 'Chinese' },
  { code: 'en', name: 'English' },
  { code: 'ja', name: '日本語' }
];

// 支持的语言列表 - 生产环境下排除中文
export const supportedLanguages = isDevelopment 
  ? allLanguages 
  : allLanguages.filter(lang => lang.code !== 'zh');

// 生产环境下允许的语言代码
const allowedLanguages = supportedLanguages.map(lang => lang.code);

// 首次进入页面时的语言处理
if (typeof window !== 'undefined') {
  const currentLng = localStorage.getItem('i18nextLng');
  
  if (!currentLng) {
    // 如果没有设置语言，设置为默认语言
    localStorage.setItem('i18nextLng', defaultLanguage);
  } else if (!isDevelopment && currentLng === 'zh') {
    // 生产环境下如果当前语言是中文，切换到日文
    localStorage.setItem('i18nextLng', defaultLanguage);
    // console.log('Production environment: Chinese language not supported, switched to Japanese');
  } else if (!allowedLanguages.includes(currentLng)) {
    // 如果当前语言不在允许的语言列表中，切换到默认语言
    localStorage.setItem('i18nextLng', defaultLanguage);
  }
}

// 防止重复初始化字体加载器的标志
let fontLoaderInitialized = false;

i18n
  // 加载和缓存翻译
  .use(Backend)
  // 检测用户语言
  .use(LanguageDetector)
  // 将i18n实例传递给react-i18next
  .use(initReactI18next)
  // 初始化i18next
  .init({
    resources,
    fallbackLng: defaultLanguage,
    debug: isDevelopment,
    interpolation: {
      escapeValue: false, // React已经安全处理了
    },
    detection: {
      order: ['localStorage'],
      lookupLocalStorage: 'i18nextLng',
      caches: ['localStorage'],
    },
    // 在生产环境下，如果尝试切换到不支持的语言，回退到默认语言
    load: 'languageOnly',
    preload: allowedLanguages,
  }).then(() => {
    // 在 i18n 初始化完成后应用动态字体
    if (typeof window !== 'undefined' && !fontLoaderInitialized) {
      fontLoaderInitialized = true;
      // 导入字体加载器
      // import('../utils/fontLoader').then(({ applyDynamicFonts }) => {
      //   applyDynamicFonts();
      // });
    }
    
    // 触发初始化完成事件
    i18n.emit('initialized');
    // console.log('i18n initialization completed');
  });

// 监听语言变化，确保生产环境下不使用中文
i18n.on('languageChanged', (lng) => {
  if (!isDevelopment && lng === 'zh') {
    console.warn('Chinese language is not supported in production environment, switching to Japanese');
    i18n.changeLanguage(defaultLanguage);
  }
  });

export default i18n; 